package com.snowfield.lb47.lbconfig.mapper;

import java.util.List;
import com.snowfield.lb47.lbconfig.domain.Backserver;

/**
 * 后端服务器Mapper接口
 * 
 * @author snowfield
 * @date 2024-03-25
 */
public interface BackserverMapper 
{
    /**
     * 查询后端服务器
     * 
     * @param id 后端服务器主键
     * @return 后端服务器
     */
    public Backserver selectBackserverById(Long id);

    /**
     * 查询后端服务器列表
     * 
     * @param backserver 后端服务器
     * @return 后端服务器集合
     */
    public List<Backserver> selectBackserverList(Backserver backserver);

    /**
     * 新增后端服务器
     * 
     * @param backserver 后端服务器
     * @return 结果
     */
    public int insertBackserver(Backserver backserver);

    /**
     * 修改后端服务器
     * 
     * @param backserver 后端服务器
     * @return 结果
     */
    public int updateBackserver(Backserver backserver);

    /**
     * 删除后端服务器
     * 
     * @param id 后端服务器主键
     * @return 结果
     */
    public int deleteBackserverById(Long id);

    /**
     * 批量删除后端服务器
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBackserverByIds(Long[] ids);

    /**
     * 根据后端服务器名称查询后端服务器
     *
     * @param serverName 后端服务器名称
     * @return 结果
     */
    public Backserver selectBackserverByName(String serverName);

    /**
     * 根据后端服务器IP查询后端服务器
     *
     * @param serverIp 后端服务器IP地址
     * @return 结果
     */
    public Backserver selectBackserverByIp(String serverIp);

    /**
     * 判断后端服务器分配到前端代理的数量
     *
     * @param serverId 服务器标识ID
     * @return 结果
     */
    public int usedServerCount(Long serverId);
}
